/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package sysmodel.util;

import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;

import org.eclipse.emf.ecore.util.Switch;

import sysmodel.Association;
import sysmodel.AssociationEnd;
import sysmodel.Attribute;
import sysmodel.BusinessComponent;
import sysmodel.BusinessService;
import sysmodel.BusinessServiceParameter;
import sysmodel.Component;
import sysmodel.Constraint;
import sysmodel.DataType;
import sysmodel.Entity;
import sysmodel.Enumeration;
import sysmodel.FeatureType;
import sysmodel.FeaturedElement;
import sysmodel.GeneratorModel;
import sysmodel.J2eeBusinessComponent;
import sysmodel.J2eeBusinessService;
import sysmodel.J2eeRestComponent;
import sysmodel.J2eeRestService;
import sysmodel.Literal;
import sysmodel.NamedElement;
import sysmodel.OSGiBusinessComponent;
import sysmodel.OSGiBusinessService;
import sysmodel.OSGiRestComponent;
import sysmodel.OSGiRestService;
import sysmodel.Property;
import sysmodel.RestComponent;
import sysmodel.RestService;
import sysmodel.RestServiceParameter;
import sysmodel.ReturnType;
import sysmodel.Service;
import sysmodel.ServiceParameter;
import sysmodel.SysmodelPackage;
import sysmodel.SystemModel;
import sysmodel.dotNetBusinessComponent;
import sysmodel.dotNetBusinessService;
import sysmodel.dotNetRestComponent;
import sysmodel.dotNetRestService;

/**
 * <!-- begin-user-doc -->
 * The <b>Switch</b> for the model's inheritance hierarchy.
 * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
 * to invoke the <code>caseXXX</code> method for each class of the model,
 * starting with the actual class of the object
 * and proceeding up the inheritance hierarchy
 * until a non-null result is returned,
 * which is the result of the switch.
 * <!-- end-user-doc -->
 * @see sysmodel.SysmodelPackage
 * @generated
 */
public class SysmodelSwitch<T> extends Switch<T> {
	/**
	 * The cached model package
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static SysmodelPackage modelPackage;

	/**
	 * Creates an instance of the switch.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public SysmodelSwitch() {
		if (modelPackage == null) {
			modelPackage = SysmodelPackage.eINSTANCE;
		}
	}

	/**
	 * Checks whether this is a switch for the given package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @parameter ePackage the package in question.
	 * @return whether this is a switch for the given package.
	 * @generated
	 */
	@Override
	protected boolean isSwitchFor(EPackage ePackage) {
		return ePackage == modelPackage;
	}

	/**
	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the first non-null result returned by a <code>caseXXX</code> call.
	 * @generated
	 */
	@Override
	protected T doSwitch(int classifierID, EObject theEObject) {
		switch (classifierID) {
			case SysmodelPackage.SYSTEM_MODEL: {
				SystemModel systemModel = (SystemModel)theEObject;
				T result = caseSystemModel(systemModel);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.COMPONENT: {
				Component component = (Component)theEObject;
				T result = caseComponent(component);
				if (result == null) result = caseNamedElement(component);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.SERVICE: {
				Service service = (Service)theEObject;
				T result = caseService(service);
				if (result == null) result = caseNamedElement(service);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.DATA_TYPE: {
				DataType dataType = (DataType)theEObject;
				T result = caseDataType(dataType);
				if (result == null) result = caseNamedElement(dataType);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.ENTITY: {
				Entity entity = (Entity)theEObject;
				T result = caseEntity(entity);
				if (result == null) result = caseDataType(entity);
				if (result == null) result = caseNamedElement(entity);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.REST_SERVICE: {
				RestService restService = (RestService)theEObject;
				T result = caseRestService(restService);
				if (result == null) result = caseService(restService);
				if (result == null) result = caseNamedElement(restService);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.ATTRIBUTE: {
				Attribute attribute = (Attribute)theEObject;
				T result = caseAttribute(attribute);
				if (result == null) result = caseNamedElement(attribute);
				if (result == null) result = caseFeaturedElement(attribute);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.J2EE_BUSINESS_COMPONENT: {
				J2eeBusinessComponent j2eeBusinessComponent = (J2eeBusinessComponent)theEObject;
				T result = caseJ2eeBusinessComponent(j2eeBusinessComponent);
				if (result == null) result = caseBusinessComponent(j2eeBusinessComponent);
				if (result == null) result = caseComponent(j2eeBusinessComponent);
				if (result == null) result = caseNamedElement(j2eeBusinessComponent);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.J2EE_REST_COMPONENT: {
				J2eeRestComponent j2eeRestComponent = (J2eeRestComponent)theEObject;
				T result = caseJ2eeRestComponent(j2eeRestComponent);
				if (result == null) result = caseRestComponent(j2eeRestComponent);
				if (result == null) result = caseComponent(j2eeRestComponent);
				if (result == null) result = caseNamedElement(j2eeRestComponent);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.BUSINESS_SERVICE: {
				BusinessService businessService = (BusinessService)theEObject;
				T result = caseBusinessService(businessService);
				if (result == null) result = caseService(businessService);
				if (result == null) result = caseNamedElement(businessService);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.REST_SERVICE_PARAMETER: {
				RestServiceParameter restServiceParameter = (RestServiceParameter)theEObject;
				T result = caseRestServiceParameter(restServiceParameter);
				if (result == null) result = caseServiceParameter(restServiceParameter);
				if (result == null) result = caseFeaturedElement(restServiceParameter);
				if (result == null) result = caseNamedElement(restServiceParameter);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.REST_COMPONENT: {
				RestComponent restComponent = (RestComponent)theEObject;
				T result = caseRestComponent(restComponent);
				if (result == null) result = caseComponent(restComponent);
				if (result == null) result = caseNamedElement(restComponent);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.BUSINESS_COMPONENT: {
				BusinessComponent businessComponent = (BusinessComponent)theEObject;
				T result = caseBusinessComponent(businessComponent);
				if (result == null) result = caseComponent(businessComponent);
				if (result == null) result = caseNamedElement(businessComponent);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.DOT_NET_REST_COMPONENT: {
				dotNetRestComponent dotNetRestComponent = (dotNetRestComponent)theEObject;
				T result = casedotNetRestComponent(dotNetRestComponent);
				if (result == null) result = caseRestComponent(dotNetRestComponent);
				if (result == null) result = caseComponent(dotNetRestComponent);
				if (result == null) result = caseNamedElement(dotNetRestComponent);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.DOT_NET_BUSINESS_COMPONENT: {
				dotNetBusinessComponent dotNetBusinessComponent = (dotNetBusinessComponent)theEObject;
				T result = casedotNetBusinessComponent(dotNetBusinessComponent);
				if (result == null) result = caseBusinessComponent(dotNetBusinessComponent);
				if (result == null) result = caseComponent(dotNetBusinessComponent);
				if (result == null) result = caseNamedElement(dotNetBusinessComponent);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.J2EE_BUSINESS_SERVICE: {
				J2eeBusinessService j2eeBusinessService = (J2eeBusinessService)theEObject;
				T result = caseJ2eeBusinessService(j2eeBusinessService);
				if (result == null) result = caseBusinessService(j2eeBusinessService);
				if (result == null) result = caseService(j2eeBusinessService);
				if (result == null) result = caseNamedElement(j2eeBusinessService);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.DOT_NET_BUSINESS_SERVICE: {
				dotNetBusinessService dotNetBusinessService = (dotNetBusinessService)theEObject;
				T result = casedotNetBusinessService(dotNetBusinessService);
				if (result == null) result = caseBusinessService(dotNetBusinessService);
				if (result == null) result = caseService(dotNetBusinessService);
				if (result == null) result = caseNamedElement(dotNetBusinessService);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.CONSTRAINT: {
				Constraint constraint = (Constraint)theEObject;
				T result = caseConstraint(constraint);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.J2EE_REST_SERVICE: {
				J2eeRestService j2eeRestService = (J2eeRestService)theEObject;
				T result = caseJ2eeRestService(j2eeRestService);
				if (result == null) result = caseRestService(j2eeRestService);
				if (result == null) result = caseService(j2eeRestService);
				if (result == null) result = caseNamedElement(j2eeRestService);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.DOT_NET_REST_SERVICE: {
				dotNetRestService dotNetRestService = (dotNetRestService)theEObject;
				T result = casedotNetRestService(dotNetRestService);
				if (result == null) result = caseRestService(dotNetRestService);
				if (result == null) result = caseService(dotNetRestService);
				if (result == null) result = caseNamedElement(dotNetRestService);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.FEATURE_TYPE: {
				FeatureType featureType = (FeatureType)theEObject;
				T result = caseFeatureType(featureType);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.SERVICE_PARAMETER: {
				ServiceParameter serviceParameter = (ServiceParameter)theEObject;
				T result = caseServiceParameter(serviceParameter);
				if (result == null) result = caseFeaturedElement(serviceParameter);
				if (result == null) result = caseNamedElement(serviceParameter);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.BUSINESS_SERVICE_PARAMETER: {
				BusinessServiceParameter businessServiceParameter = (BusinessServiceParameter)theEObject;
				T result = caseBusinessServiceParameter(businessServiceParameter);
				if (result == null) result = caseServiceParameter(businessServiceParameter);
				if (result == null) result = caseFeaturedElement(businessServiceParameter);
				if (result == null) result = caseNamedElement(businessServiceParameter);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.LITERAL: {
				Literal literal = (Literal)theEObject;
				T result = caseLiteral(literal);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.ENUMERATION: {
				Enumeration enumeration = (Enumeration)theEObject;
				T result = caseEnumeration(enumeration);
				if (result == null) result = caseDataType(enumeration);
				if (result == null) result = caseNamedElement(enumeration);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.NAMED_ELEMENT: {
				NamedElement namedElement = (NamedElement)theEObject;
				T result = caseNamedElement(namedElement);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.ASSOCIATION: {
				Association association = (Association)theEObject;
				T result = caseAssociation(association);
				if (result == null) result = caseNamedElement(association);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.ASSOCIATION_END: {
				AssociationEnd associationEnd = (AssociationEnd)theEObject;
				T result = caseAssociationEnd(associationEnd);
				if (result == null) result = caseNamedElement(associationEnd);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.OS_GI_REST_SERVICE: {
				OSGiRestService osGiRestService = (OSGiRestService)theEObject;
				T result = caseOSGiRestService(osGiRestService);
				if (result == null) result = caseRestService(osGiRestService);
				if (result == null) result = caseService(osGiRestService);
				if (result == null) result = caseNamedElement(osGiRestService);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.OS_GI_BUSINESS_COMPONENT: {
				OSGiBusinessComponent osGiBusinessComponent = (OSGiBusinessComponent)theEObject;
				T result = caseOSGiBusinessComponent(osGiBusinessComponent);
				if (result == null) result = caseBusinessComponent(osGiBusinessComponent);
				if (result == null) result = caseComponent(osGiBusinessComponent);
				if (result == null) result = caseNamedElement(osGiBusinessComponent);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.OS_GI_BUSINESS_SERVICE: {
				OSGiBusinessService osGiBusinessService = (OSGiBusinessService)theEObject;
				T result = caseOSGiBusinessService(osGiBusinessService);
				if (result == null) result = caseBusinessService(osGiBusinessService);
				if (result == null) result = caseService(osGiBusinessService);
				if (result == null) result = caseNamedElement(osGiBusinessService);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.OS_GI_REST_COMPONENT: {
				OSGiRestComponent osGiRestComponent = (OSGiRestComponent)theEObject;
				T result = caseOSGiRestComponent(osGiRestComponent);
				if (result == null) result = caseRestComponent(osGiRestComponent);
				if (result == null) result = caseComponent(osGiRestComponent);
				if (result == null) result = caseNamedElement(osGiRestComponent);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.EXCEPTION: {
				sysmodel.Exception exception = (sysmodel.Exception)theEObject;
				T result = caseException(exception);
				if (result == null) result = caseNamedElement(exception);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.RETURN_TYPE: {
				ReturnType returnType = (ReturnType)theEObject;
				T result = caseReturnType(returnType);
				if (result == null) result = caseFeaturedElement(returnType);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.PROPERTY: {
				Property property = (Property)theEObject;
				T result = caseProperty(property);
				if (result == null) result = caseFeaturedElement(property);
				if (result == null) result = caseNamedElement(property);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.FEATURED_ELEMENT: {
				FeaturedElement featuredElement = (FeaturedElement)theEObject;
				T result = caseFeaturedElement(featuredElement);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case SysmodelPackage.GENERATOR_MODEL: {
				GeneratorModel generatorModel = (GeneratorModel)theEObject;
				T result = caseGeneratorModel(generatorModel);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			default: return defaultCase(theEObject);
		}
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>System Model</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>System Model</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseSystemModel(SystemModel object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Component</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Component</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseComponent(Component object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Service</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Service</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseService(Service object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Data Type</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Data Type</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseDataType(DataType object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Entity</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Entity</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseEntity(Entity object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Rest Service</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Rest Service</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseRestService(RestService object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Attribute</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Attribute</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseAttribute(Attribute object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>J2ee Business Component</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>J2ee Business Component</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseJ2eeBusinessComponent(J2eeBusinessComponent object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>J2ee Rest Component</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>J2ee Rest Component</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseJ2eeRestComponent(J2eeRestComponent object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Business Service</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Business Service</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseBusinessService(BusinessService object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Rest Service Parameter</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Rest Service Parameter</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseRestServiceParameter(RestServiceParameter object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Rest Component</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Rest Component</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseRestComponent(RestComponent object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Business Component</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Business Component</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseBusinessComponent(BusinessComponent object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>dot Net Rest Component</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>dot Net Rest Component</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T casedotNetRestComponent(dotNetRestComponent object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>dot Net Business Component</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>dot Net Business Component</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T casedotNetBusinessComponent(dotNetBusinessComponent object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>J2ee Business Service</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>J2ee Business Service</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseJ2eeBusinessService(J2eeBusinessService object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>dot Net Business Service</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>dot Net Business Service</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T casedotNetBusinessService(dotNetBusinessService object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Constraint</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Constraint</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseConstraint(Constraint object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>J2ee Rest Service</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>J2ee Rest Service</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseJ2eeRestService(J2eeRestService object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>dot Net Rest Service</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>dot Net Rest Service</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T casedotNetRestService(dotNetRestService object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Feature Type</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Feature Type</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseFeatureType(FeatureType object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Service Parameter</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Service Parameter</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseServiceParameter(ServiceParameter object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Business Service Parameter</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Business Service Parameter</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseBusinessServiceParameter(BusinessServiceParameter object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Literal</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Literal</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseLiteral(Literal object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Enumeration</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Enumeration</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseEnumeration(Enumeration object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Named Element</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Named Element</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseNamedElement(NamedElement object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Association</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Association</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseAssociation(Association object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Association End</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Association End</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseAssociationEnd(AssociationEnd object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>OS Gi Rest Service</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>OS Gi Rest Service</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseOSGiRestService(OSGiRestService object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>OS Gi Business Component</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>OS Gi Business Component</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseOSGiBusinessComponent(OSGiBusinessComponent object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>OS Gi Business Service</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>OS Gi Business Service</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseOSGiBusinessService(OSGiBusinessService object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>OS Gi Rest Component</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>OS Gi Rest Component</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseOSGiRestComponent(OSGiRestComponent object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Exception</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Exception</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseException(sysmodel.Exception object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Return Type</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Return Type</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseReturnType(ReturnType object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Property</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Property</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseProperty(Property object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Featured Element</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Featured Element</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseFeaturedElement(FeaturedElement object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>Generator Model</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>Generator Model</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
	 * @generated
	 */
	public T caseGeneratorModel(GeneratorModel object) {
		return null;
	}

	/**
	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
	 * <!-- begin-user-doc -->
	 * This implementation returns null;
	 * returning a non-null result will terminate the switch, but this is the last case anyway.
	 * <!-- end-user-doc -->
	 * @param object the target of the switch.
	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
	 * @generated
	 */
	@Override
	public T defaultCase(EObject object) {
		return null;
	}

} //SysmodelSwitch
